package ej;

public class OnClass {
    public static void main(String[] args) {
        ObjectTool<String> ot = new ObjectTool<String>();
        // ot.setObj(new Integer(18)); //这个时候编译期间就过不去
        ot.setObj(new String("张三"));
        String s = ot.getObj();
        System.out.println("姓名是：" + s);

        ObjectTool<Integer> ot2 = new ObjectTool<Integer>();
        // ot2.setObj(new String("李四"));//这个时候编译期间就过不去
        ot2.setObj(new Integer(27));
        Integer i = ot2.getObj();
        System.out.println("年龄是：" + i);

        //把泛型定义在方法上
        ot2.show("泛型定义在方法上");
    }
}

//把泛型定义在类上<T>
class ObjectTool<T> {
    private T obj;

    public T getObj() {
        return obj;
    }
    public void setObj(T obj) {
        this.obj = obj;
    }

    //把泛型定义在方法上<C>
    public <C> void show(C t) {
        System.out.println(t);
    }
}
